..........................................................................
	  ___      _     _       _      _    _    
	//   \\  // \\  | \  || | \  || \\  //  
	\\___   ||___|| ||\\ || ||\\ ||  \\//   
	     \\ ||   || || \\|| || \\||   ||	
	\\___// ||   || ||  \_| ||  \_|   ||    
		  ___                       __      ____   __
		||   \\ ||   || || ||     ||  \\  ||     ||  ||
		||___// ||   || || ||     ||   || ||____ ||_ ||
		||   \\ ||   || || ||     ||   || ||     || \\
		||___//  \\__|| || ||____ ||__//  ||____ ||  \\


..........................................................................

		:

		1.  
		 1.1	  ?
		 1.2	  

		2. 
		 2.1	
		 2.2	 
		 2.3	
		 2.4	
		  2.4.1  
		  2.4.2  
		  2.4.3 
		  2.4.4 
		  2.4.5  
		  2.4.6  Model
		  2.4.7   
		 2.5	
		  2.5.1  FOR
		  2.5.2  WHILE
		  2.5.3  REPEAT
		  2.5.4 Continue  Break
		 2.6	 
		 2.7	
		 2.8	
		 2.9	HEX..END	

		3. 

		4.   (Opcode Search Tool)

		5.  

		6.  

..........................................................................


		1.  


..........................................................................


		1.1	  ?
..........................................................................

		Sanny Builder -      
	     GTA (GTA3, VC, SA). 
	   ,   
	 MAIN.SCM  SCRIPT.IMG (SA),   ; 
	,       , 
	   ,	    , 
	       . 
	         
	 (    )     
	 .
		Have fun.

..........................................................................

		1.2	  
..........................................................................

		        
	  sanny.exe

	  :
	\sa -    SA ( )
	\vc -    VC
	\gta3 -    GTA3

	     -  (. ).



..........................................................................


		2. 


..........................................................................


		2.1	
..........................................................................

	  ,     .
	         SAMB 0.33, 
	     . 
	   @,     . 
	     @  ,    
	,   SaMB.


..........................................................................

		2.2	 
..........................................................................


	$ -   .    
	    . 
		: 0004: $MyVar = 100

	@ -  : 
		: 0002: jump @MyLabel

	  -  :  .    
	     
		: 0006: 100@ = 10

	'...' -  (. 7 ). 
	  : ''

		: 03A4: name_thread 'MAIN'


	"..." -  (  ,    255 )

	(NEW)
	       
	,     : 
	\n - New Line (  ~n~ -    )
	\s - Space (  #32 -  )

	          .
	       \.

	  : ""

		: 0662: write_debug_message "Hello, \"world\"! \n 'Here we go!'"


	s$ -   
		:	05A9: s$MyString = 'GLOBAL'

	@s -   
		: 05AA: 1@s = 'LOCAL'

	v$ -   
		: 06D1: v$MyString = "LONG_GLOBAL"

	@v -   	
		: 06D2: 1@v = "LONG_LOCAL"

	# -      IDE -  
		: 0247: request_model #CELLPHONE

	& -    (ADMA). 
	      
	     ,    $.
		: &57 += &120(&231,4i)

	(:   -     main.scm,
	   )

	(NEW)
	0x -    .
	-0x -  

		:	0004: $var = -0xBB08

	     -80000000..7FFFFFFF


	. :	http://sannybuilder.com/articles/3


..........................................................................

		2.3	
..........................................................................

	    - .
	    ,  .

	   :  (  
	   )   (   
	).   .

	     () 
	  . Sanny Builder   
	   . ,   
	$var = 0  0004: $var = 0.     
	 ,      
	  .

	,        , 
	   ,      
	.   - ,    :
	    Integer   Float.

	      ,   
	   VAR..END.    
	   ,    . 
	  

	var
	 $1stIntVar : Integer
	 $2ndIntVar : Integer
	end

	        
	$1stIntVar = $2ndIntVar 
	$1stIntVar *= $2ndIntVar  ..


	   :

	Integer, Int 		- integer values
	Float	     		- floating-points values
	String, ShortString	- Fixed length string variable
	(  ,  s$, @s  )
	LongString		- Variable length string variable
	(  ,  v$, @v  )

	(  Ctrl+Space   )

	     .   :

	var
	 <array name>: array <size> of <type>
	end
	
	:

	var
	 $FloatArray: array 10 of Float
	end

	           
	 . :

	$FloatArray[$RndIndex] += 100.0


	       .
	  ,          
	       .   , 
	     . :

	;--------------------
	Thread 'Food'
	Var
	 10@ : Float
	 $Var : Float
	End
	$var = 1
	10@ = $Var
	end_thread
	;--------------------
	Thread 'Loop'
	Var
	 10@ : Int
	 $Var : Int
	End
	$var = 1
	10@ = $Var
	end_thread
	;--------------------

	    10@    float,
	  -  integer.    	 
	  .

	        .
	       =   :

	var
	 $fVar: float = 1.0
	end

	 $fVar    Float  
	 SCM   : 0005: $fVar = 1.0

	    ,   !


..........................................................................

		2.4	
..........................................................................


			2.4.1  
..........................................................................

	Sanny Builder      .
	 -   ,   - 
	  : , ,   ..

	      classes.db     
	  .      
	.

	     ().    
	  :

	- 
	-  ()
	- 

..........................................................................

			2.4.2	 
..........................................................................
	    ,   Ctrl+Space,
	  Check.       - 
	 ()  : ,   ..
	:

	if
	 Player.Defined($PLAYER_CHAR)
	jf @anywhere
..........................................................................

			2.4.3	
..........................................................................
	     - 
	   :  ,    
	..     -  ,  
	  (, )	   .  SB 
	    ,    .

	Player.Create($PLAYER_CHAR, #NULL, 2488.5601, -1666.84, 13.38) - 
	$PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) - 
	-

	  .

..........................................................................

			2.4.4	
..........................................................................

	       - 
	.   Money  Player   
	  :

	0109: player $PLAYER_CHAR money += 1000000
	010A:   player $PLAYER_CHAR money > 461@
	010B: 4@ = player $PLAYER_CHAR money

	        classes.db   
	  :

	player($PLAYER_CHAR).Money += 1000000
	player($PLAYER_CHAR).Money > 461@
	4@ = player($PLAYER_CHAR).Money

	       
	    . Sanny Builder 
	   ,    
	 classes.db. ..   , ,  
	:
	player($PLAYER_CHAR).Money -= 1000000


..........................................................................

			2.4.5	 
..........................................................................

	   2.6     
	        . :

	var
	 $PLAYER_CHAR: Player
	end

	   $PLAYER_CHAR   Player.  
	   ,     .
	:

	if
	 $PLAYER_CHAR.Defined
	jf @anywhere

	 ,      
	 ,     .

	Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head) 
	=
	$PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head)	

	        .

..........................................................................

			2.4.6  Model
..........................................................................
	 Model      , 
	     . ,  
	  :

	--------------------------
	#AK47.Load

	:loop
	wait 0
	if
	 #AK47.Available
	jf @loop
	--------------------------

	    

	--------------------------
	Model.Load(#AK47)

	:loop
	wait 0
	if
	 Model.Available(#AK47)
	jf @loop
	--------------------------

..........................................................................

			2.4.7   
..........................................................................


	         
	   .
	
	: 
	Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)

	Torso -    Extended.

	        'classes.db'.

	       Integer.
	        
	0,  -  1  .. -  .
	
	   c   ^.    
	   ,    , :
	"BodyPart: ^Torso^ ^Legs^Shoes".     , 
	    1,    .

	       ,  
	   .      
	 =   , :

	"BodyPart: ^Torso^Head^Legs^Shoes^Special=17"
	 Special     17.

	        


	    ,  
	      Ctrl+Space.
	   ,     ,
	 ctrl+space        
	      .


..........................................................................

		2.5	
..........................................................................

	 SB    : 

	1. FOR..END
	2. WHILE..END
	3. REPEAT..UNTIL

	    (..    ).

	:     .    
	    ,   .

..........................................................................

			2.5.1  FOR..END
..........................................................................
	         
	()

	    :

	FOR <counter> = <initial value> TO/DOWNTO <final value> [step <int> = 1]
	...
	END

	 :
	<counter> - ,     
	 () .

	<initial value> -   

	TO/DOWNTO -  TO     ,  DOWNTO
	.

	<final value> -   ,     
	,   DOWNTO      

	<step> -       .
	     1.

	 :

	...
	var
	 $value: int = 0
	 $final: int = 100
	end

	FOR $MyCounter = 1 to $final step 2
	 $value += $mycounter
	end
	...

..........................................................................

			2.5.2  WHILE..END
..........................................................................

	:

	WHILE <condition>
	 ...
	END

	 WHILE    ,   . 
	  ,      ,
	    .

	$var = 10

	while $var > 11
	 inc($var)
	end

	     ,      
	Inc($var)

	 While       
	 True  False:
	While True .. End -    ,    
	   Break.
	While False .. End -    .
	

	     WHILE    .
	    -      
	  Break  Continue.
..........................................................................

			2.5.3  REPEAT..UNTIL
..........................................................................

	:

	REPEAT 
	 ...
	UNTIL <condition>

	 Repeat         
	 Until.    , 
	      . 


	 Repeat       
	 True  False:
	Repeat .. Until True -      
	Repeat .. Until False -    , 
	      Break.


	     REPEAT    .
	    -      
	  Break  Continue.

..........................................................................

			2.5.4 Continue  Break
..........................................................................

	         
	 ,    .   
	  Continue.      .
	   ,     
	     . 

	:

	if
	 $currentactor.dead
	jf continue // 'continue'      

	       0002 (jump),  
	   .

	if
	 not $currentactor.dead
	jf @next
	Continue // jump continue
	:next
	
	    Break,   .  
	        (jf break)

..........................................................................

		2.6	 
..........................................................................

	1. INC -     , 
	  ,    .
	    ,    
	 1.

	Inc($IntVariable, $Value)
	=
	$IntVariable += $Value

	Inc(1@)
	=
	1@ += 1
..........................................................................

	2. DEC -     , 
	  ,    .
	    ,    
	 1.

	Dec($IntVariable, $Value)
	=
	$IntVariable -= $Value

	Dec(1@)
	=
	1@ -= 1
..........................................................................

	3. MUL -     , 
	  ,    .
	    ,    
	 2.
..........................................................................

	4. DIV -     , 
	  ,    .
	    ,    
	 2.
..........................................................................

	5. (sys) ALLOC* -       .
	       .
	       :
	 $40      #40.

	Alloc($MyVar, 40) -  $MyVar    40.

	.  'help\examples\alloc.txt'

	*    (sys)    , 
	   .
..........................................................................

	6. SQR -      ( )
	,    *.
	
	sqr($var) 
	=
	$var *= $var

	*     . . . 2.3
..........................................................................

	7. RANDOM -       ,
	 .

	$rnd = random(1, $high)

	       Integer,   
	 Float.       , 
	   .


..........................................................................

	(NEW)
	7. WriteMem -       
	  (  San Andreas)

	(!)       Xieon's SA MemPatch.
	         'Tools\SA Memory Patch'

	:
	WriteMem(Address: Integer; Value: Integer/Float; [Size: Integer = 4]; VirtualProtect: True/False)


	Address -     ,    .
	        .

	Value - ,      .
	     ,   .

	Size ( ,    4) - 
	,     .  : 1, 2, 4.

	(!)        , 
	         .
	       , 
	    (      )

	VirtualProtect  ( ,    False) - 
	        
	Virtual Protect.  : True, False


	  'Help\Examples\WriteMem.txt'
..........................................................................

	(NEW)
	7. ReadMem -       
	  (  San Andreas)

	(!)       Xieon's SA MemPatch.
	         Tools\SA Memory patch

	:
	ReadMem(Address: Integer; var Result: Variable; [Size: Integer = 4]; VirtualProtect: True/False)


	Address -     ,    .
	        .

	Result - ,     

	Size ( ,    4) - 
	,     .  : 1, 2, 4.

	(!)        , 
	         .
	       , 
	    (      )

	VirtualProtect  ( ,    False) - 
	        
	Virtual Protect.  : True, False

..........................................................................

		2.7	  ()
..........................................................................

	     .   WAIT  
	     0001. ..  

	wait 0
 
	 

	0001: wait 0 

	    Ctrl+Space

..........................................................................

		2.8	
..........................................................................

	   (-)    IF.

	    : 
	1) 
	2) 

	1.   :

	00d6: if <N>
	... <condition 1>
	... <condition 2>
	...
	... <condition n+1>
	004d: jump_if_false <label>

	<N> - ,   .
	0 	-  1 
	1..6 	- 2    (6 .),   
	 AND.     ,   ,
	  , .
	21..26 	- 2    (6 .),   
	OR.     ,     ,
	  , .

	<label> -  ,     ,  
	.

	Sanny Builder     0  
	.  , IF    IF 0.

	      AND  OR  
	*.       
	. 

	:

	if and 
	 $var > 0
	 $var2 == 10.0
	jf @anywhere

	   1  and.

	*       .
	IF AND -     And (1..6)
	IF OR -      OR (21..26)


	2. Sanny Builder   IF..THEN..END  
	IF..THEN..ELSE..END*

	    ,  .
	  THEN    (-),   ,
	  .   ELSE    (-), 
	  ,   .  
	 End.

	if $var == 5
	 then 
	  Inc($var)
	 else
	  Dec($var)
	end

	   .

	*       .


	        
	  *:
	
	a == b	 a  b
	a >= b 	 a    b
	a  > b	 a  b
	a  < b	 a  b
	a <= b	 a    b
	a <> b	 a   b

	      NOT.

	*  ,       .


..........................................................................

		2.9	HEX..END
..........................................................................

	      
	  SCM  IMG *. 
	:

	 hex
	  04 00 02 0800 04 01
	 end

	   ,  0004: $2 = 1


	(NEW) 
	         
	 .     ,  
	 .

	:get_offset
	hex
	 04 00 02 $PLAYER_CHAR 01 @get_offset
	end

	   ,  0004: $PLAYER_CHAR = @get_offset


	*     .    
	       .


..........................................................................


		3. 


..........................................................................


	Sanny Builder     
	 :

		
		1.  

	       , 
	,  .      
	keywords.txt  keywords.ini


		2.    

	    : 
	
	1.      
	  Ctrl + Shift + <0..9>,     
	    Ctrl + <0..9>. 
	      Edit -> Clear All Boookmarks
	
	2.   Go To Line.    Ctrl+G. 
	    ,       .


		3.    

	     - ,  @MyLabel. 
	 Ctrl+Num2       
	   (:MyLabel).     Ctrl+Num8.
	    (jumps).      
	(, @MyLabel)   Ctrl+Num4      
	    ,  .  Ctrl+Num6  , 
	 .     ,    
	  .


		4.       
		(    )

	      ,  
	   ,    ( 
	  IDE -       San Andreas).


		5.    SAMB

	     SAMB 0.33. 
	     Sanny Builder    
	 ->->MB->SB
	(NEW)
	   ,   .

	:     MB.ini,  
	       . 
	        
	 DMA -  ( $MyVar(1) ).     
	  variables.ini  SAMB 0.33,   (
	  MB.ini).


		6.  . 
	
	   ( fade)   F1.
	   opcodes.txt      .
	(0169: set_fade_color 0 0 0).        ,
	 F1   .
	          
	-> opcodes.txt


		7.       (NEW)

	 Ctrl+Alt+1,   SA,    .
	          
	 .
	          
	Ctrl+Shift+C.
	   (z_angle)     Ctrl+Shift+E


		8.  

	         , 
	  .      , 
	   ,     
	.     ,   ,
	 load   F2.    

	#.Load

	while not #.Available
	 wait 0
	end

	         .

	      'macroes.txt'. 
	  :

	  ( )   . 
	        . 
	     = (),    
	.  	 .

	      , 
	    =.
	,        
	 |.

	        Ctrl+J.

	       'macroes.txt' 
	 .        
	  "-> ".   
	       (   )
	   OK.        .

	         .
	          
	    .
	,    :

	$Actor = Actor.Create(CivMale, #MALE01, 100.0, 100.0, 10.0)
	$ActorWithGun = Actor.Create(CivMale, #MALE01, 110.0, 100.0, 20.0)
	$Gang01 = Actor.Create(CivMale, #MALE01, 120.0, 100.0, 30.0)
	$Gang02 = Actor.Create(CivMale, #MALE01, 130.0, 100.0, 40.0)
	$Killer = Actor.Create(CivMale, #MALE01, 140.0, 100.0, 50.0)
	$ActorWithoutGun = Actor.Create(CivMale, #MALE01, 150.0, 100.0, 60.0)

	,         ( 
	$Actor $ActorWithGun,   $ActorWithGun - $Actor  ..)
	        .
	(   ,   :)).

	       Ctrl+M.   
	     ,    .
	- Ctrl      . Ctrl   
	  . 
	-  Shift+Home  Ctrl+Ins. 
	-  .      ,   
	     . 
	- Ctrl+   Shift+Ins.
	- Ctrl+ , Shift+Home, Ctrl+Ins   Delete
	-  
	- Ctrl+Shift+   Shift+Ins
	-  Home.
	
	     
	$ActorWithGun = Actor.Create(CivMale, 100.0, 100.0, 10.0)
	$Actor = Actor.Create(CivMale, 110.0, 100.0, 20.0)
	      .   Ctrl+M

	 .       
	 Ctrl+P.    3- , 
	Ctrl+P     .

	        Ctrl+P.
	  - Ctrl+P.


		9.      .

	Sanny Builder       .
	     ,    
	DEFINE MISSION.

	,    

	DEFINE MISSION 10 AT @MYMISSION

	     

	start_mission 10

	

	start_mission MYMISSION

	 SB   Replace Mission Numbers.   ,
	          .
	     ,    .

	      , 
	       . 
	  ,    DEFINE MISSION. 

	     start_mission 
	        Ctrl+Space.

	         . 
	  ,      ( 3.3)


		10.  .

	   2.98 Sanny Builder   
	   .    
	   .    
	 (F10).
	        
	'lang\How to translate.txt'


		11.   

	Sanny Builder     GTA3, GTA VC, GTA SA.
	       .
	(NEW)
	      , 
	       .


		12.   .

	       9  , 
	      . 
	       
	,   .
	(NEW)
	      
	 : $SB_FileName.     
	        .


		13.  

	      //
	,        ,  .

	          
	 (    )      {}

	0001: wait  { } 0 ms


	          
	Ctrl+Q
	      Ctrl+Q  .


		14.     (NEW).

	     ,    
	  .      CustomLabels.ini
	(   ). 
	  : <label address>=<custom name> 
	      ,    
	 .


	         "  ". 
	  ,    Label    .


		15.  Sanny Builder (NEW)

	    / 
	 ,   .   
	  ().
	    Ctrl + ~.

	      .
	     ,     HELP.

..........................................................................

	       :

	Ctrl + Alt + U/I -    / ()
	Ctrl + Alt + A/D -    / ()

	Ctrl + Alt + B/N/M -    :
	,   ( -    Alt),  

	Ctrl + Shift + B -     {}
	Ctrl + Shift + Num8/Num2 -      /
	Ctrl + Scroll Up/Down -  /

	Ctrl + Shift + U/L -    / 

	Ctrl + T -  
	Ctrl + Y -  
	Ctrl + Shift + Y -  

	Ctrl + Space -   /////
	Ctrl + Shift + Space -      

	Ctrl + Shift + C -     (3.7)
	Ctrl + Shift + E -      (3.7)

	Alt + S (   ) -  

	F1 -      (  '_'  '.')
	Ctrl + F1 -      (  '_'  '.')

	F2 -  
	Ctrl + J -   
	Ctrl + M -    / 
	Ctrl + P -   /   

	Ctrl + ` -  

..........................................................................


		4.   (Opcode Search Tool)


..........................................................................


         OST  Ctrl+Alt+2   
     ->-> 

    
        ,     , 
      ,  'actor car' ( ).  
      ,   .  
     ,      .    
        (   ).
    
        -     
        . .,      'car',
         ,      car.
    
           .   
        ,  'weapon',   , 
      ,    ,   . 
         ,    
     settings.ini     delay  . 
       - .    - 300 .
    
         .    
     extra_search  1,  ,  SCROLL LOCK  , 
        .    ,
      SCROLL LOCK,    .
    
    
    	:
    	------------
    
      ,      ,    
       ENTER.     .    
          ,  SHIFT+ENTER.   
           .
     F2 -    .
    
    
    	 :
	----------------
  
   
     ESC, F12 - 
   
     ENTER 
     *    -   
    
     SHIFT + ENTER  
     *    -     
    
     SCROLL LOCK (  extra_search=1) / 
    
     F2 -       
    
     F3 -   
     F4 -   
    
     F5 -    
     F6 -    
    
     F11 -   ,   
    
    
   
    	 :
 	-----------------   
       
    
    		 
    
    
     ---------------------------------------------------------------
    
    	  (AND)
    
     ---------------------------------------------------------------
    
             . 
    
    		: @ player
    
       ,     @,   player
    
    
     ---------------------------------------------------------------
    
    	  (OR)
    
     ---------------------------------------------------------------
    
           |  . 
    
    		: @ | player
    
       ,     @,   player
    
       |  ,    
        OR.
    
    		: | actor player car
    
       ,        .
    
     ---------------------------------------------------------------
    
    	  (NOT)
    
     ---------------------------------------------------------------
    
              --
    
    		: car --car2
    
       ,    car    car2
    
         $  @    . 
     ,        
     .
    
    		: -10 -@ -car --3
    
       ,    -10    @, 
      car   3.
    
    
     ---------------------------------------------------------------
    
    		  
    
     ---------------------------------------------------------------
    
    	^ ::     
    
     --------------------------------------------------------------
    
    	^ ::     
    
    		: ^car ==
    
        ,    car   ==
    
     ---------------------------------------------------------------
    
    	-^  ::     
    
    		: player -^
    
        ,    player,    
         IF.
    
     ----------------------------------------------------------------
    
    	-^ ::  ,   
    
    		: player -^actor
    
        ,    player,  
         actor.
    
     ----------------------------------------------------------------
    
    	% ::    
    
    		: % @ == @
    
        ,       
    


..........................................................................


		5.  


..........................................................................


		 :

	*     WriteMem  ReadMem (2.6)
	*      (2.2)
	*  hex..end        (2.9)
	*    &  ,     
	  : &57 += &120(&231,4i)
	*      (3.14)
	*          
	  ,     ( -> )
	*      SB (3.15)
	*  GXT- GTA III, GTA VC
	*       (2.2)
	*    
	  -      INI 
	  -   INI      
	    ( SASCM.INI  PLPython)
	  -   
	  -      (3.11)
	  -  ,    SAMB 0.33
	  -         
	        (3.12)
	  -      
	  -       Float,  
	       Float,      . 
	           .
	  - / Z_angle   Coord Manager;  
	         Ctrl+Shift+E ( SA)

	(!)  SASCM.INI   : 0181, 00c3, 00c4  
	 WriteMem  ReadMem.       
	    ,       
	.       Xieon's SA MemPatch (2.6)

	(!)   classes.db  SA   Car.SetSpeedInstantly 
	  ( ).     
	      ,    
	Actor.DrivingPlane .   .


		 :

	04.08.2006	release #13	v. 2.98

	* Sanny Builder  
	*    
	*  SB    Opcode Search Tool 
	  (http://gtacoding.nm.ru/tool).    'Readme OST.txt'
	*      
	     " "*
	*   IMG- ,     
	     SCM- ( "  IMG-")
	*       ;
	    
	*      /  
	  (Alt+S,   )
	*    


	. *        
	( 0004: $Var1 = $Var2),      
	        .


	11.06.2006	release #12	v. 2.97

	*   : & (direct byte address)
	*  


	   :
	http://sannybuilder.com/views/history



..........................................................................


		6.  


..........................................................................

	   Delphi 7.0 Ent.	Borland Software Corp.
						http://www.borland.com

	   SynEdit	SynEdit Team
						http://synedit.sourceforge.net

	 ,      
	mail@sannybuilder.com


	Web:
	http://sannybuilder.com
	http://gtaforums.com/index.php?showtopic=211077




	Use it at your own risk. In Backup We Trust.
				Best regards, Seemann and Xieon

..........................................................................
